package com.webproject.core.config;

import com.webproject.core.base.BaseException;
import com.webproject.core.base.BaseResponse;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * Controller层 全局异常处理
 */
@RestControllerAdvice
public class GlobalExceptionAdvice {

    /**
     * 拦截自定义异常 返回友好化的返回体
     */
    @ExceptionHandler(BaseException.class)
    public BaseResponse<String> baseExceptionHandler(BaseException e){
        return BaseResponse.error(e.getMessage());
    }

    /**
     * 拦截所有未被处理的异常 做友好提示
     */
    @ExceptionHandler(Exception.class)
    public BaseResponse<String> exceptionHandler(Exception e){
        // 打印错误信息到控制台， 但是不能直接吧未处理异常直接抛出
        System.out.println(e.getMessage());
        return BaseResponse.error("系统异常");
    }
}
